package com.gopay.common.domain.cbrmb;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import com.gopay.common.domain.BaseEntity;

/**
 * @ClassName: CbRmbApprove
 * @Description: 跨境人民币单步审批表
 * @author huangcheng
 * @date 2017年8月10日 下午1:44:44
 */
@Entity
@Table(name = "CB_RMB_APPROVE")
public class CbRmbApprove extends BaseEntity {

    private static final long serialVersionUID = 5770355934438840695L;

    /**
     * 通过
     */
    public static final String PASS = "1";
    /**
     * 未通过
     */
    public static final String NOTPASS = "0";


    /** 
     * 序列号
     */
    private Integer sq;

    /** 
     * 订单号
     */
    private String gopayOrderId;

    /** 
     * 交易类型
     */
    private String gopayIntTxnCd;

    /** 
     * 审批类型
     */
    private String approveType;

    /** 
     * 审批人id
     */
    private String operatorId;

    /** 
     * 审批结果
     */
    private String auditResult;

    /** 
     * 审核意见
     */
    private String auditRemark;

    /** 
     * 创建时间
     */
    private Date createTime;

    /** 
     * 最后更新时间
     */
    private Date lastUpdateTime;

    public CbRmbApprove() {
    }

    public CbRmbApprove(String gopayOrderId, String gopayIntTxnCd, String approveType, String operatorId,
            String auditResult, String auditRemark, Date createTime, Date lastUpdateTime) {
        setGopayOrderId(gopayOrderId);
        setGopayIntTxnCd(gopayIntTxnCd);
        setApproveType(approveType);
        setOperatorId(operatorId);
        setAuditResult(auditResult);
        setAuditRemark(auditRemark);
        setCreateTime(createTime);
        setLastUpdateTime(lastUpdateTime);
    }

    @Id
    @SequenceGenerator(name = "CbRmbApproveSq", sequenceName = "CB_RMB_APPROVE_SEQ")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CbRmbApproveSq")
    @Column(name = "SQ", unique = true, nullable = false, precision = 22, scale = 0)
    public Integer getSq() {
        return this.sq;
    }

    public void setSq(Integer sq) {
        this.sq = sq;
    }

    @Column(name = "GOPAY_ORDER_ID", nullable = false, length = 30)
    public String getGopayOrderId() {
        return this.gopayOrderId;
    }

    public void setGopayOrderId(String gopayOrderId) {
        this.gopayOrderId = gopayOrderId;
    }

    @Column(name = "GOPAY_INT_TXN_CD", nullable = false, length = 6)
    public String getGopayIntTxnCd() {
        return this.gopayIntTxnCd;
    }

    public void setGopayIntTxnCd(String gopayIntTxnCd) {
        this.gopayIntTxnCd = gopayIntTxnCd;
    }

    @Column(name = "APPROVE_TYPE", nullable = false, length = 3)
    public String getApproveType() {
        return this.approveType;
    }

    public void setApproveType(String approveType) {
        this.approveType = approveType;
    }

    @Column(name = "OPERATOR_ID", nullable = false, length = 10)
    public String getOperatorId() {
        return this.operatorId;
    }

    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }

    @Column(name = "AUDIT_RESULT", nullable = false, length = 1)
    public String getAuditResult() {
        return this.auditResult;
    }

    public void setAuditResult(String auditResult) {
        this.auditResult = auditResult;
    }

    @Column(name = "AUDIT_REMARK", length = 500)
    public String getAuditRemark() {
        return this.auditRemark;
    }

    public void setAuditRemark(String auditRemark) {
        this.auditRemark = auditRemark;
    }

    @Column(name = "CREATE_TIME", nullable = false)
    public Date getCreateTime() {
        return this.createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Column(name = "LAST_UPDATE_TIME", nullable = false)
    public Date getLastUpdateTime() {
        return this.lastUpdateTime;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

}
